﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MSBDATAModel;

public partial class KHDangKyThe : System.Web.UI.Page
{
    MSBDATAEntities entities = new MSBDATAEntities();
    TAI_KHOAN_WEB _tk = null;
    protected void Page_Load(object sender, EventArgs e)
    {

        if (Session["login"] != null)
        {
            if (!IsPostBack)
            {
                string username = Session["login"].ToString();

                var matches = from tk in entities.TAI_KHOAN_WEB
                              where tk.TenDangNhap == username
                              select tk;
                try
                {
                    _tk = matches.First();

                    if (_tk.DuocKichHoat == false)
                    {
                        Response.Redirect("KHDefault.aspx");
                    }

                    DropDownListLoaiThe.DataTextField = "TenLoaiThe";
                    DropDownListLoaiThe.DataValueField = "MaLoaiThe";
                    DropDownListLoaiThe.DataSource = entities.C_LOAI_THE;

                    DropDownListLoaiThe.DataBind();

                    DropDownListTKNganHang.DataTextField = "SoTien";
                    DropDownListTKNganHang.DataValueField = "SoTaiKhoan";

                    DropDownListTKNganHang.DataSource = from tk in entities.TAI_KHOAN_NGAN_HANG
                                                        where tk.TAI_KHOAN_WEB.TenDangNhap == _tk.TenDangNhap
                                                        select tk;
                    DropDownListTKNganHang.DataBind();
                }

                catch (Exception)
                {
                    Response.Redirect("NotLogin.aspx");
                }
            }
        }
        else
            Response.Redirect("NotLogin.aspx");

    }
    protected void ButtonTaoThe_Click(object sender, EventArgs e)
    {
        if (Session["login"] == null)
        {
            Response.Redirect("NotLogin.aspx");
            return;
        }
        string username = Session["login"].ToString();

        var matches = from tk in entities.TAI_KHOAN_WEB
                      where tk.TenDangNhap == username
                      select tk;
        try
        {
            _tk = matches.First();

            if (_tk != null)
            {
                try
                {
                    if (this.TextBoxMaPIN.Visible == true)
                    {
                        if (TextBoxMaPIN.Text == "")
                        {
                            LabelStatus.Text = "Vui lòng nhập mã PIN";
                            return;
                        }
                    }
                    string sothe = "";
                    int loaithe = int.Parse(DropDownListLoaiThe.SelectedItem.Value);
                    DateTime HanSuDung = DateTime.Now;

                    THE_THANH_TOAN the = THE_THANH_TOAN.CreateTHE_THANH_TOAN(sothe);
                    // tạo thẻ ATM
                    if (loaithe == 1)
                    {
                        sothe = Util.SinhSoTheATM(_tk);
                        HanSuDung = DateTime.Now.AddYears(2);
                        the.SoPin = TextBoxMaPIN.Text;

                    }
                    else if (loaithe == 2)// tạo thẻ thanh toán trực tuyến
                    {
                        sothe = Util.SinhSoTheThanhToanTrucTuyen();
                        if (sothe == null)
                        {
                            LabelStatus.Text = "Không thể tạo Thẻ thanh toán trực tuyến được nữa. Vui lòng quay lại sau.";
                            return;
                        }
                    }
                    else
                    {
                        LabelStatus.Text = "Chưa chọn loại thẻ.";
                        return;
                    }



                    // tạo thẻ mới
                    if (DropDownListTKNganHang.SelectedItem.Value == "-1")
                    {
                        TAI_KHOAN_NGAN_HANG tknh = Util.TaoTaiKhoanNganHang(_tk);
                        if (tknh != null)
                        {
                            the.TAI_KHOAN_NGAN_HANG = entities.TAI_KHOAN_NGAN_HANG.First(c => c.SoTaiKhoan == tknh.SoTaiKhoan);

                        }
                        else
                        {
                            Response.Redirect("NotLogin.aspx");
                            return;
                        }
                    }
                    else//dùng thẻ cũ
                        the.TAI_KHOAN_NGAN_HANG = entities.TAI_KHOAN_NGAN_HANG.First(c => c.SoTaiKhoan == DropDownListTKNganHang.SelectedItem.Value);

                    the.SoThe = sothe;
                    the.C_LOAI_THE = entities.C_LOAI_THE.First(t => t.MaLoaiThe == loaithe);
                    the.HanSuDung = HanSuDung;

                    entities.AddToTHE_THANH_TOAN(the);

                    if (entities.SaveChanges() > 0)
                        this.LabelStatus.Text = "Tạo " + the.C_LOAI_THE.TenLoaiThe + " thành công";
                    else
                        this.LabelStatus.Text = "Tạo " + the.C_LOAI_THE.TenLoaiThe + " vui lòng thử lại";
                }
                catch (Exception) { Response.Redirect("NotLogin.aspx"); }
            }

        }
        catch (Exception)
        {
            Response.Redirect("NotLogin.aspx");
        }                
    }
    protected void DropDownListLoaiThe_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownListLoaiThe.SelectedValue == "1")
        {
            this.Label1.Visible = true;
            this.TextBoxMaPIN.Visible = true;
        }
        else
        {
            this.Label1.Visible = false;
            this.TextBoxMaPIN.Visible = false;
        }
    }
}